package com.wang.luntan.users.service;

import com.wang.luntan.common.pojo.ApiResponse;
import com.wang.luntan.users.pojo.AtAdmins;
import com.wang.luntan.users.pojo.AtUsers;

import java.util.Map;

/**
 * 不需要登陆的Service操作,
 * 把Controller复杂的一些操作放到Service层;
 * 因为接口层和网页层要共用
 *
 * @author wangsh
 */
public interface INoLoginOperService {
    /**
     * 登陆提交
     *
     * @param paramsMap 上行参数,包含用户名,密码,验证码
     * @return ApiResponse
     */
    ApiResponse<Object> operLoginSubmitService(Map<String, Object> paramsMap);

    /**
     * 管理员登陆提交
     *
     * @param paramsMap
     * @return
     */
    ApiResponse<Object> operAdminsLoginSubmitService(Map<String, Object> paramsMap);

    /**
     * 注册提交
     *
     * @param paramsMap 上行参数,包含用户名,密码,验证码
     * @return ApiResponse
     */
    ApiResponse<Object> operRegisterSubmitService(Map<String, Object> paramsMap);

    /**
     * 发送邮件
     *
     * @param paramsMap 上行参数,包含用户名,密码,验证码
     * @return ApiResponse
     */
    ApiResponse<Object> operEmailVerfySendService(Map<String, Object> paramsMap);

    /**
     * 邮箱验证
     *
     * @param paramsMap 上行参数,包含用户名,密码,验证码
     * @return ApiResponse
     */
    ApiResponse<Object> operEmailVerfyService(Map<String, Object> paramsMap);

    /**
     * 忘记密码提交
     *
     * @param paramsMap 上行参数,包含用户名,密码,验证码
     * @return ApiResponse
     */
    ApiResponse<Object> operForgetPassSubmit(Map<String, Object> paramsMap);

    /**
     * 重置密码
     *
     * @param paramsMap 上行参数,包含用户名,密码,验证码
     * @return ApiResponse
     */
    ApiResponse<Object> operResetPass(Map<String, Object> paramsMap);

    /**
     * 重置密码提交
     *
     * @param paramsMap 上行参数,包含用户名,密码,验证码
     * @return ApiResponse
     */
    ApiResponse<Object> operResetPassSubmit(Map<String, Object> paramsMap);

    /**
     * 为用户增加Token
     *
     * @param users
     * @return
     */
    ApiResponse<AtUsers> operAddUsersTokenService(AtUsers users);

    /**
     * 为管理员增加Token
     *
     * @param admins
     * @return
     */
    ApiResponse<AtAdmins> operAddAdminsTokenService(AtAdmins admins);
}
